//for of遍历便利器对象
let arr=[1,2,3];
//arr.keys()下标  arr.values()值   arr.entries()数组中的键值

for(let key of arr.keys()){
    console.log(key);
}
for(let key of arr.values()){
    console.log(key);
}
for(let key of arr.entries()){
    console.log(key);
}
//该方法有一个next方法根据下标，不包含最后一个
// let val=arr.keys();
// console.log(val.next());
// console.log(val.next());
// console.log(val.next());
// console.log(val.next());

//合并对象Object.assgin会修改第一个参数，并且把第一个参数返回来，返回值为第一个参数,Boolean
let obj1={
    name:"zs",
    age:18
}
let obj2={
    name:"lisi",
    age:19,
    sex:"男"
}
let obj3={};
let obj4=Object.assign(obj3,obj1,obj2);
console.log(obj3===obj4)

//reset参数 ...  ...parmas   ...参数名
//特点必须放在最后，值为剩余参数组成的数组

function extend(o,...array){
    array.forEach((item)=>{
        for(let key in item){
           o[key]=item[key];
        }
    })
    return o
}
console.log(extend({},obj1,obj2));


//getOwnpropertyDescriptor(获取属性的描述对象